package gson.gson.cclass;

import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonNull;
import com.google.gson.JsonObject;

import java.math.BigDecimal;
import java.math.BigInteger;

public class JsonElementExample {

    private final JsonElement jsonElement;

    public JsonElementExample(JsonElement jsonElement) {
        this.jsonElement = jsonElement;
    }

    public BigDecimal getAsBigDecimal() {
        return this.jsonElement.getAsBigDecimal();
    }

    public BigInteger getAsBigInteger() {
        return this.jsonElement.getAsBigInteger();
    }

    public Boolean getAsBoolean() {
        return this.jsonElement.getAsBoolean();
    }

    public Byte getAsByte() {
        return this.jsonElement.getAsByte();
    }

    public Double getAsDouble() {
        return this.jsonElement.getAsDouble();
    }

    public Float getAsFloat() {
        return this.jsonElement.getAsFloat();
    }

    public Integer getAsInt() {
        return this.jsonElement.getAsInt();
    }

    public JsonArray getAsJsonArray() {
        return this.jsonElement.getAsJsonArray();
    }

    public JsonNull getAsJsonNull() {
        return this.jsonElement.getAsJsonNull();
    }

    public JsonObject getAsJsonObject() {
        return this.jsonElement.getAsJsonObject();
    }

    public Long getAsLong() {
        return this.jsonElement.getAsLong();
    }

    public Number getAsNumber() {
        return this.jsonElement.getAsNumber();
    }

    public Short getAsShort() {
        return this.jsonElement.getAsShort();
    }

    public String getAsString() {
        return this.jsonElement.getAsString();
    }

    public boolean isJsonArray() {
        return this.jsonElement.isJsonArray();
    }

    public boolean isJsonNull() {
        return this.jsonElement.isJsonNull();
    }

    public boolean isJsonObject() {
        return this.jsonElement.isJsonObject();
    }

    @Override
    public String toString() {
        return this.jsonElement.toString();
    }
}
